package com.topscore.uke.mvp.contractors;

import android.widget.TextView;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.topscore.uke.entities.TeamPerfomenceSummaryData;
import com.topscore.uke.entities.TeamPerformanceRankData;
import com.topscore.uke.mvp.model.BaseHttpListener;
import com.topscore.uke.mvp.views.BaseView;
import com.topscore.uke.network.BaseResponse;
import com.topscore.uke.network.request.GetTeamPerformanceRequest;
import com.topscore.uke.network.request.GetTeamRankRequest;
import com.topscore.uke.network.retrofit.ApiService;
import com.topscore.uke.network.retrofit.NetClientPostJson;

import lecho.lib.hellocharts.model.ComboLineColumnChartData;
import lecho.lib.hellocharts.view.ComboLineColumnChartView;

public interface GetTeamPerformanceRankContractor {
    interface Model {
        ApiService mService = NetClientPostJson.getInstance().net().create(ApiService.class);

        void getData(GetTeamPerformanceRequest performanceRequest, GetTeamRankRequest rankRequest);

        void getRankData(GetTeamRankRequest rankRequest);

        void getPerformance(GetTeamPerformanceRequest performanceRequest);

        interface CallBack extends BaseHttpListener {
            void onGetSummarySuccess(BaseResponse<TeamPerfomenceSummaryData> response);

            void onGetRankSuccess(BaseResponse<TeamPerformanceRankData> response);
        }
    }

    interface View extends BaseView {
        BaseQuickAdapter getRankAdapter();

        ComboLineColumnChartView getLineColumnChartView();

        void onGetPerformanceChartDataSuccess(ComboLineColumnChartData lineColumnChartData);

        TextView getTotalAmountTv();

        TextView getTotalSalesCountTv();
    }

    interface Presenter {
        void getPerformanceRank();

        void getPerformanceRank(String year);

        void getPerformanceRank(String year, String month);

        void loadNextPage();

        void getRankListBySort(String sort);
    }
}
